﻿/*
 * Utils.h
 *
 *  Created on: 28.02.2012
 *      Author: Caffeine
 */

#ifndef UTILS_H_
#define UTILS_H_
#include <irrlicht.h>
namespace irr {

namespace utils{

	//irr::core::stringw readLine(irr::io::IReadFile*file);

    //Convert a texture to an image. Remember to drop the returned pointer
    irr::video::IImage* TextureImage(irr::video::ITexture* texture,irr::video::IVideoDriver*driver);

    //Convert an image to a texture. Remember to drop the returned pointer
    irr::video::ITexture* ImageTexture(irr::video::IImage* image,irr::video::IVideoDriver*driver, irr::core::stringc name=irr::core::stringc(""));

	/*
	* Копирует один рисунок в другой смешивая их прозрачность
	*
	* @param from рисунок откуда нужно скопировать
	* @param to рисунок куда нужно скопировать
	* @param pos место на рисунке, куда будет скопировать рисунок
	*/
    void copyImageWithAlpha(irr::video::IImage*from,irr::video::IImage*to,irr::core::vector2di pos);
    //irr::scene::IAnimatedMeshSceneNode*getModel(irr::core::stringc path,irr::scene::ISceneNode*parent);
    bool fileExist(irr::core::stringc path);
	
    irr::core::rect<irr::s32> normalize(irr::core::rect<irr::s32> r);
	irr::core::rect<irr::u32> normalize(irr::core::rect<irr::u32> r);
	irr::core::rect<irr::f32> normalize(irr::core::rect<irr::f32> r);

	irr::core::rect<irr::s32> multiplySize(irr::core::rect<irr::s32> r,irr::s32 d);
	irr::core::rect<irr::u32> multiplySize(irr::core::rect<irr::u32> r,irr::u32 d);
	irr::core::rect<irr::f32> multiplySize(irr::core::rect<irr::f32> r,irr::f32 d);
	irr::io::path getAbsolutePath(irr::io::path path);
	//irr::core::rect<irr::f32> multiplySize(irr::core::rect<int> r,int d);
	
}//namespace utils
} /* namespace irr */
//bool readline(irr::io::IReadFile*f,irr::core::stringw*strw);
//bool readtoken(irr::io::IReadFile*f,irr::core::stringw*strw);
#endif /* UTILS_H_ */
